
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="zh_Hans">
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>查找 API 参考 &#8212; Django 3.2.11.dev 文档</title>
    <link rel="stylesheet" href="../../_static/default.css" type="text/css" />
    <link rel="stylesheet" href="../../_static/pygments.css" type="text/css" />
    <script type="text/javascript" id="documentation_options" data-url_root="../../" src="../../_static/documentation_options.js"></script>
    <script type="text/javascript" src="../../_static/jquery.js"></script>
    <script type="text/javascript" src="../../_static/underscore.js"></script>
    <script type="text/javascript" src="../../_static/doctools.js"></script>
    <script type="text/javascript" src="../../_static/language_data.js"></script>
    <link rel="index" title="索引" href="../../genindex.html" />
    <link rel="search" title="搜索" href="../../search.html" />
    <link rel="next" title="查询表达式" href="expressions.html" />
    <link rel="prev" title="QuerySet API 参考" href="querysets.html" />



 
<script src="../../templatebuiltins.js"></script>
<script>
(function($) {
    if (!django_template_builtins) {
       // templatebuiltins.js missing, do nothing.
       return;
    }
    $(document).ready(function() {
        // Hyperlink Django template tags and filters
        var base = "../templates/builtins.html";
        if (base == "#") {
            // Special case for builtins.html itself
            base = "";
        }
        // Tags are keywords, class '.k'
        $("div.highlight\\-html\\+django span.k").each(function(i, elem) {
             var tagname = $(elem).text();
             if ($.inArray(tagname, django_template_builtins.ttags) != -1) {
                 var fragment = tagname.replace(/_/, '-');
                 $(elem).html("<a href='" + base + "#" + fragment + "'>" + tagname + "</a>");
             }
        });
        // Filters are functions, class '.nf'
        $("div.highlight\\-html\\+django span.nf").each(function(i, elem) {
             var filtername = $(elem).text();
             if ($.inArray(filtername, django_template_builtins.tfilters) != -1) {
                 var fragment = filtername.replace(/_/, '-');
                 $(elem).html("<a href='" + base + "#" + fragment + "'>" + filtername + "</a>");
             }
        });
    });
})(jQuery);</script>

  </head><body>

    <div class="document">
  <div id="custom-doc" class="yui-t6">
    <div id="hd">
      <h1><a href="../../index.html">Django 3.2.11.dev 文档</a></h1>
      <div id="global-nav">
        <a title="Home page" href="../../index.html">Home</a>  |
        <a title="Table of contents" href="../../contents.html">Table of contents</a>  |
        <a title="Global index" href="../../genindex.html">Index</a>  |
        <a title="Module index" href="../../py-modindex.html">Modules</a>
      </div>
      <div class="nav">
    &laquo; <a href="querysets.html" title="&lt;code class=&#34;docutils literal notranslate&#34;&gt;&lt;span class=&#34;pre&#34;&gt;QuerySet&lt;/span&gt;&lt;/code&gt; API 参考">previous</a>
     |
    <a href="../index.html" title="API 参考" accesskey="U">up</a>
   |
    <a href="expressions.html" title="查询表达式">next</a> &raquo;</div>
    </div>

    <div id="bd">
      <div id="yui-main">
        <div class="yui-b">
          <div class="yui-g" id="ref-models-lookups">
            
  <div class="section" id="s-module-django.db.models.lookups">
<span id="s-lookup-api-reference"></span><span id="module-django.db.models.lookups"></span><span id="lookup-api-reference"></span><h1>查找 API 参考<a class="headerlink" href="#module-django.db.models.lookups" title="永久链接至标题">¶</a></h1>
<p>本文档提供了查找的 API 参考，它是 Django 的 API，用于构建数据库查询的 <code class="docutils literal notranslate"><span class="pre">WHERE</span></code> 子句。要学习如何 <em>使用</em> 查找，请看 <a class="reference internal" href="../../topics/db/queries.html"><span class="doc">执行查询</span></a>；要学习如何 <em>创建</em> 新的查找，请看 <a class="reference internal" href="../../howto/custom-lookups.html"><span class="doc">自定义查询器</span></a>。</p>
<p>查找 API 有两个组成部分：一个是 <a class="reference internal" href="#django.db.models.lookups.RegisterLookupMixin" title="django.db.models.lookups.RegisterLookupMixin"><code class="xref py py-class docutils literal notranslate"><span class="pre">RegisterLookupMixin</span></code></a> 类，用于注册查找；另一个是 <a class="reference internal" href="#query-expression"><span class="std std-ref">查询表达式 API</span></a>，一个类要想注册为查找，必须实现一组方法。</p>
<p>Django 有两个遵循查询表达式 API 的基类，所有 Django 内置的查找都是从这里派生出来的。</p>
<ul class="simple">
<li><a class="reference internal" href="#django.db.models.Lookup" title="django.db.models.Lookup"><code class="xref py py-class docutils literal notranslate"><span class="pre">Lookup</span></code></a>：查找一个字段（例如 <code class="docutils literal notranslate"><span class="pre">field_name__exact</span></code> 的 <code class="docutils literal notranslate"><span class="pre">exact</span></code>）</li>
<li><a class="reference internal" href="#django.db.models.Transform" title="django.db.models.Transform"><code class="xref py py-class docutils literal notranslate"><span class="pre">Transform</span></code></a>：转换一个字段</li>
</ul>
<p>一个查找表达式由三部分组成：</p>
<ul class="simple">
<li>字段部分（如 <code class="docutils literal notranslate"><span class="pre">Book.objects.filter(author__best_friends__first_name...</span></code>）；</li>
<li>转换部分（可省略）（如 <code class="docutils literal notranslate"><span class="pre">__lower__first3chars__reversed</span></code>）；</li>
<li>查找（例如 <code class="docutils literal notranslate"><span class="pre">__icontains</span></code>），如果省略，默认为 <code class="docutils literal notranslate"><span class="pre">__exact</span></code>。</li>
</ul>
<div class="section" id="s-registration-api">
<span id="s-lookup-registration-api"></span><span id="registration-api"></span><span id="lookup-registration-api"></span><h2>注册 API<a class="headerlink" href="#registration-api" title="永久链接至标题">¶</a></h2>
<p>Django 使用 <a class="reference internal" href="#django.db.models.lookups.RegisterLookupMixin" title="django.db.models.lookups.RegisterLookupMixin"><code class="xref py py-class docutils literal notranslate"><span class="pre">RegisterLookupMixin</span></code></a> 来给一个类提供对自己进行注册查找的接口。两个突出的例子是 <a class="reference internal" href="fields.html#django.db.models.Field" title="django.db.models.Field"><code class="xref py py-class docutils literal notranslate"><span class="pre">Field</span></code></a>，所有模型字段的基类，以及 <a class="reference internal" href="#django.db.models.Transform" title="django.db.models.Transform"><code class="xref py py-class docutils literal notranslate"><span class="pre">Transform</span></code></a>，所有 Django 变换的基类。</p>
<dl class="class">
<dt id="django.db.models.lookups.RegisterLookupMixin">
<em class="property">class </em><code class="descclassname">lookups.</code><code class="descname">RegisterLookupMixin</code><a class="headerlink" href="#django.db.models.lookups.RegisterLookupMixin" title="永久链接至目标">¶</a></dt>
<dd><p>一个在类上实现查找 API 的混入。</p>
<dl class="classmethod">
<dt id="django.db.models.lookups.RegisterLookupMixin.register_lookup">
<em class="property">classmethod </em><code class="descname">register_lookup</code>(<em>lookup</em>, <em>lookup_name=None</em>)<a class="headerlink" href="#django.db.models.lookups.RegisterLookupMixin.register_lookup" title="永久链接至目标">¶</a></dt>
<dd><p>在类中注册一个新的查找。例如 <code class="docutils literal notranslate"><span class="pre">DateField.register_lookup(YearExact)</span></code> 将在 <code class="docutils literal notranslate"><span class="pre">DateField</span></code> 上注册 <code class="docutils literal notranslate"><span class="pre">YearExact</span></code> 的查找。它将覆盖已经存在的同名查找。如果提供了 <code class="docutils literal notranslate"><span class="pre">lookup_name</span></code> 将被用于这个查找，否则 <code class="docutils literal notranslate"><span class="pre">lookup.lookup_name</span></code> 将被使用。</p>
</dd></dl>

<dl class="method">
<dt id="django.db.models.lookups.RegisterLookupMixin.get_lookup">
<code class="descname">get_lookup</code>(<em>lookup_name</em>)<a class="headerlink" href="#django.db.models.lookups.RegisterLookupMixin.get_lookup" title="永久链接至目标">¶</a></dt>
<dd><p>返回在类中注册的名为 <code class="docutils literal notranslate"><span class="pre">lookup_name</span></code> 的 <a class="reference internal" href="#django.db.models.Lookup" title="django.db.models.Lookup"><code class="xref py py-class docutils literal notranslate"><span class="pre">Lookup</span></code></a>。默认的实现是递归地查找所有父类，并检查是否有名为 <code class="docutils literal notranslate"><span class="pre">lookup_name</span></code> 的注册查找，返回第一个匹配的类。</p>
</dd></dl>

<dl class="method">
<dt id="django.db.models.lookups.RegisterLookupMixin.get_lookups">
<code class="descname">get_lookups</code>()<a class="headerlink" href="#django.db.models.lookups.RegisterLookupMixin.get_lookups" title="永久链接至目标">¶</a></dt>
<dd><p>返回映射到 <a class="reference internal" href="#django.db.models.Lookup" title="django.db.models.Lookup"><code class="xref py py-class docutils literal notranslate"><span class="pre">Lookup</span></code></a> 类的类中注册的每个查找名称的字典。</p>
</dd></dl>

<dl class="method">
<dt id="django.db.models.lookups.RegisterLookupMixin.get_transform">
<code class="descname">get_transform</code>(<em>transform_name</em>)<a class="headerlink" href="#django.db.models.lookups.RegisterLookupMixin.get_transform" title="永久链接至目标">¶</a></dt>
<dd><p>返回一个名为 <code class="docutils literal notranslate"><span class="pre">transform_name</span></code> 的 <code class="xref py py-class docutils literal notranslate"><span class="pre">transform</span></code>。缺省的实现是递归地查找所有父类，检查是否有名为 <code class="docutils literal notranslate"><span class="pre">transform_name</span></code> 的注册变换，返回第一个匹配的类。</p>
</dd></dl>

</dd></dl>

<p>一个类要想成为查找，必须遵循 <a class="reference internal" href="#query-expression"><span class="std std-ref">查询表达式 API</span></a>。 <a class="reference internal" href="#django.db.models.Lookup" title="django.db.models.Lookup"><code class="xref py py-class docutils literal notranslate"><span class="pre">Lookup</span></code></a> 和 <a class="reference internal" href="#django.db.models.Transform" title="django.db.models.Transform"><code class="xref py py-class docutils literal notranslate"><span class="pre">Transform</span></code></a> 自然遵循这个API。</p>
</div>
<div class="section" id="s-the-query-expression-api">
<span id="s-query-expression"></span><span id="the-query-expression-api"></span><span id="query-expression"></span><h2>查询表达式 API<a class="headerlink" href="#the-query-expression-api" title="永久链接至标题">¶</a></h2>
<p>查询表达式 API 是一组通用的方法，这些方法被定义为可用于查询表达式，将自己翻译成 SQL 表达式。直接字段引用、聚合和 <code class="docutils literal notranslate"><span class="pre">Transform</span></code> 是遵循这个 API 的例子。当一个类实现了以下方法时，就可以说它遵循了查询表达式 API：</p>
<dl class="method">
<dt id="django.db.models.as_sql">
<code class="descname">as_sql</code>(<em>compiler</em>, <em>connection</em>)<a class="headerlink" href="#django.db.models.as_sql" title="永久链接至目标">¶</a></dt>
<dd><p>生成表达式的 SQL 片段。返回一个元组 <code class="docutils literal notranslate"><span class="pre">(sql,</span> <span class="pre">params)</span></code>，其中 <code class="docutils literal notranslate"><span class="pre">sql</span></code> 是 SQL 字符串，<code class="docutils literal notranslate"><span class="pre">params</span></code> 是查询参数的列表或元组。<code class="docutils literal notranslate"><span class="pre">compiler</span></code> 是一个 <code class="docutils literal notranslate"><span class="pre">SQLCompiler</span></code> 对象，它有一个 <code class="docutils literal notranslate"><span class="pre">compile()</span></code> 方法，可以用来编译其他表达式。<code class="docutils literal notranslate"><span class="pre">connection</span></code> 是用于执行查询的连接。</p>
<p>调用 <code class="docutils literal notranslate"><span class="pre">expression.as_sql()</span></code> 通常是不正确的，应该使用 <code class="docutils literal notranslate"><span class="pre">compiler.compile(expression)</span></code>。<code class="docutils literal notranslate"><span class="pre">compiler.compile()</span></code> 方法将负责调用特定厂商的表达式方法。</p>
<p>如果 <code class="docutils literal notranslate"><span class="pre">as_vendorname()</span></code> 方法或子类很可能需要提供数据来覆盖 SQL 字符串的生成，可以在这个方法上定义自定义关键字参数。参见 <a class="reference internal" href="expressions.html#django.db.models.Func.as_sql" title="django.db.models.Func.as_sql"><code class="xref py py-meth docutils literal notranslate"><span class="pre">Func.as_sql()</span></code></a> 的用法示例。</p>
</dd></dl>

<dl class="method">
<dt id="django.db.models.as_vendorname">
<code class="descname">as_vendorname</code>(<em>compiler</em>, <em>connection</em>)<a class="headerlink" href="#django.db.models.as_vendorname" title="永久链接至目标">¶</a></dt>
<dd><p>和 <code class="docutils literal notranslate"><span class="pre">as_sql()</span></code> 方法一样工作。当一个表达式被 <code class="docutils literal notranslate"><span class="pre">compiler.compile()</span></code> 编译后，Django 会先尝试调用 <code class="docutils literal notranslate"><span class="pre">as_vendorname()</span></code>，其中 <code class="docutils literal notranslate"><span class="pre">vendorname</span></code> 是执行查询的后端厂商名称。<code class="docutils literal notranslate"><span class="pre">vendorname</span></code> 是 Django 内置后端的 <code class="docutils literal notranslate"><span class="pre">postgresql</span></code>、<code class="docutils literal notranslate"><span class="pre">oracle</span></code>、<code class="docutils literal notranslate"><span class="pre">sqlite</span></code>、<code class="docutils literal notranslate"><span class="pre">mysql</span></code> 中的一个。</p>
</dd></dl>

<dl class="method">
<dt id="django.db.models.get_lookup">
<code class="descname">get_lookup</code>(<em>lookup_name</em>)<a class="headerlink" href="#django.db.models.get_lookup" title="永久链接至目标">¶</a></dt>
<dd><p>必须返回名为 <code class="docutils literal notranslate"><span class="pre">lookup_name</span></code> 的查找。例如，返回 <code class="docutils literal notranslate"><span class="pre">self.output_field.get_lookup(lookup_name)</span></code>。</p>
</dd></dl>

<dl class="method">
<dt id="django.db.models.get_transform">
<code class="descname">get_transform</code>(<em>transform_name</em>)<a class="headerlink" href="#django.db.models.get_transform" title="永久链接至目标">¶</a></dt>
<dd><p>必须返回名为 <code class="docutils literal notranslate"><span class="pre">transform_name</span></code> 的查找。例如，返回 <code class="docutils literal notranslate"><span class="pre">self.output_field.get_transform(transform_name)</span></code>。</p>
</dd></dl>

<dl class="attribute">
<dt id="django.db.models.output_field">
<code class="descname">output_field</code><a class="headerlink" href="#django.db.models.output_field" title="永久链接至目标">¶</a></dt>
<dd><p>定义 <code class="docutils literal notranslate"><span class="pre">get_lookup()</span></code> 方法返回的类的类型。它必须是一个 <a class="reference internal" href="fields.html#django.db.models.Field" title="django.db.models.Field"><code class="xref py py-class docutils literal notranslate"><span class="pre">Field</span></code></a> 实例。</p>
</dd></dl>

</div>
<div class="section" id="s-transform-reference">
<span id="transform-reference"></span><h2><code class="docutils literal notranslate"><span class="pre">Transform</span></code> 参考<a class="headerlink" href="#transform-reference" title="永久链接至标题">¶</a></h2>
<dl class="class">
<dt id="django.db.models.Transform">
<em class="property">class </em><code class="descname">Transform</code><a class="headerlink" href="#django.db.models.Transform" title="永久链接至目标">¶</a></dt>
<dd><p><code class="docutils literal notranslate"><span class="pre">Transform</span></code> 是一个实现字段转换的通用类。一个突出的例子是 <code class="docutils literal notranslate"><span class="pre">__year</span></code>，它将 <code class="docutils literal notranslate"><span class="pre">DateField</span></code> 转变为 <code class="docutils literal notranslate"><span class="pre">IntegerField</span></code>。</p>
<p>在查询表达式中使用 <code class="docutils literal notranslate"><span class="pre">Transform</span></code> 的符号是 <code class="docutils literal notranslate"><span class="pre">&lt;expression&gt;__&lt;transformation&gt;</span></code> （例如 <code class="docutils literal notranslate"><span class="pre">date__year</span></code>）。</p>
<p>这个类遵循 <a class="reference internal" href="#query-expression"><span class="std std-ref">查询表达式 API</span></a>，这意味着你可以使用 <code class="docutils literal notranslate"><span class="pre">&lt;expression&gt;__&lt;transform1&gt;__&lt;transform2&gt;</span></code>。它是一个专门的 <a class="reference internal" href="expressions.html#func-expressions"><span class="std std-ref">Func() 表达式</span></a>，只接受一个参数。 它也可以用在过滤器的右侧，或者直接作为注解使用。</p>
<dl class="attribute">
<dt id="django.db.models.Transform.bilateral">
<code class="descname">bilateral</code><a class="headerlink" href="#django.db.models.Transform.bilateral" title="永久链接至目标">¶</a></dt>
<dd><p>一个布尔值，表示这一转换是否应适用于 <code class="docutils literal notranslate"><span class="pre">lhs</span></code> 和 <code class="docutils literal notranslate"><span class="pre">rhs</span></code>。双边转换将按照查找表达式中出现的顺序应用于 <code class="docutils literal notranslate"><span class="pre">rhs</span></code>。默认情况下，它被设置为 <code class="docutils literal notranslate"><span class="pre">False</span></code>。关于用法示例，请参见 <a class="reference internal" href="../../howto/custom-lookups.html"><span class="doc">自定义查询器</span></a>。</p>
</dd></dl>

<dl class="attribute">
<dt id="django.db.models.Transform.lhs">
<code class="descname">lhs</code><a class="headerlink" href="#django.db.models.Transform.lhs" title="永久链接至目标">¶</a></dt>
<dd><p>左侧——正在转换的内容。它必须遵循 <a class="reference internal" href="#query-expression"><span class="std std-ref">查询表达式 API</span></a>。</p>
</dd></dl>

<dl class="attribute">
<dt id="django.db.models.Transform.lookup_name">
<code class="descname">lookup_name</code><a class="headerlink" href="#django.db.models.Transform.lookup_name" title="永久链接至目标">¶</a></dt>
<dd><p>查找的名称，用于在解析查询表达式时识别它。它不能包含字符串 <code class="docutils literal notranslate"><span class="pre">&quot;__&quot;</span></code>。</p>
</dd></dl>

<dl class="attribute">
<dt id="django.db.models.Transform.output_field">
<code class="descname">output_field</code><a class="headerlink" href="#django.db.models.Transform.output_field" title="永久链接至目标">¶</a></dt>
<dd><p>定义这个转换输出的类。它必须是一个 <a class="reference internal" href="fields.html#django.db.models.Field" title="django.db.models.Field"><code class="xref py py-class docutils literal notranslate"><span class="pre">Field</span></code></a> 实例。默认情况下是与其 <code class="docutils literal notranslate"><span class="pre">lhs.output_field</span></code> 相同。</p>
</dd></dl>

</dd></dl>

</div>
<div class="section" id="s-lookup-reference">
<span id="lookup-reference"></span><h2><code class="docutils literal notranslate"><span class="pre">Lookup</span></code> 参考<a class="headerlink" href="#lookup-reference" title="永久链接至标题">¶</a></h2>
<dl class="class">
<dt id="django.db.models.Lookup">
<em class="property">class </em><code class="descname">Lookup</code><a class="headerlink" href="#django.db.models.Lookup" title="永久链接至目标">¶</a></dt>
<dd><p><code class="docutils literal notranslate"><span class="pre">Lookup</span></code> 是一个实现查找的通用类。一个查找是一个查询表达式，它的左侧是 <a class="reference internal" href="#django.db.models.Lookup.lhs" title="django.db.models.Lookup.lhs"><code class="xref py py-attr docutils literal notranslate"><span class="pre">lhs</span></code></a>；右侧是 <a class="reference internal" href="#django.db.models.Lookup.rhs" title="django.db.models.Lookup.rhs"><code class="xref py py-attr docutils literal notranslate"><span class="pre">rhs</span></code></a>；还有一个 <code class="docutils literal notranslate"><span class="pre">lookup_name</span></code>，用于在 <code class="docutils literal notranslate"><span class="pre">lhs</span></code> 和 <code class="docutils literal notranslate"><span class="pre">rhs</span></code> 之间进行布尔比较，例如 <code class="docutils literal notranslate"><span class="pre">lhs</span> <span class="pre">in</span> <span class="pre">rhs</span></code> 或 <code class="docutils literal notranslate"><span class="pre">lhs</span> <span class="pre">&gt;</span> <span class="pre">rhs</span></code>。</p>
<p>在表达式中使用查找的符号是 <code class="docutils literal notranslate"><span class="pre">&lt;lhs&gt;__&lt;lookup_name&gt;=&lt;rhs&gt;</span></code>。</p>
<p>这个类的作用是查询表达式，但是，由于它的构造上有 <code class="docutils literal notranslate"><span class="pre">=&lt;rhs&gt;</span></code>，所以，查找必须始终是查找表达式的结尾。</p>
<dl class="attribute">
<dt id="django.db.models.Lookup.lhs">
<code class="descname">lhs</code><a class="headerlink" href="#django.db.models.Lookup.lhs" title="永久链接至目标">¶</a></dt>
<dd><p>左侧——正在查询的内容。对象必须遵循 <a class="reference internal" href="#query-expression"><span class="std std-ref">查询表达式 API</span></a>。</p>
</dd></dl>

<dl class="attribute">
<dt id="django.db.models.Lookup.rhs">
<code class="descname">rhs</code><a class="headerlink" href="#django.db.models.Lookup.rhs" title="永久链接至目标">¶</a></dt>
<dd><p>右侧——<code class="docutils literal notranslate"><span class="pre">lhs</span></code> 与什么进行比较。它可以是一个普通的值，也可以是编译成 SQL 的东西，通常是一个 <code class="docutils literal notranslate"><span class="pre">F()</span></code> 对象或一个 <code class="docutils literal notranslate"><span class="pre">QuerySet</span></code>。</p>
</dd></dl>

<dl class="attribute">
<dt id="django.db.models.Lookup.lookup_name">
<code class="descname">lookup_name</code><a class="headerlink" href="#django.db.models.Lookup.lookup_name" title="永久链接至目标">¶</a></dt>
<dd><p>这个查询的名称，用于在解析查询表达式时识别它。它不能包含字符串 <code class="docutils literal notranslate"><span class="pre">&quot;__&quot;</span></code>。</p>
</dd></dl>

<dl class="method">
<dt id="django.db.models.Lookup.process_lhs">
<code class="descname">process_lhs</code>(<em>compiler</em>, <em>connection</em>, <em>lhs=None</em>)<a class="headerlink" href="#django.db.models.Lookup.process_lhs" title="永久链接至目标">¶</a></dt>
<dd><p>返回由 <code class="docutils literal notranslate"><span class="pre">compiler.compile(lhs)</span></code> 返回的元组 <code class="docutils literal notranslate"><span class="pre">(lhs_string,</span> <span class="pre">lhs_params)</span></code>。这个方法可以被重写来调整 <code class="docutils literal notranslate"><span class="pre">lhs</span></code> 的处理方式。</p>
<p><code class="docutils literal notranslate"><span class="pre">compiler</span></code> 是一个 <code class="docutils literal notranslate"><span class="pre">SQLCompiler</span></code> 对象，可以像 <code class="docutils literal notranslate"><span class="pre">compiler.compile(lhs)</span></code> 一样用来编译 <code class="docutils literal notranslate"><span class="pre">lhs</span></code>。<code class="docutils literal notranslate"><span class="pre">connection</span></code> 可以用于编译厂商特定的 SQL。如果 <code class="docutils literal notranslate"><span class="pre">lhs</span></code> 不是 <code class="docutils literal notranslate"><span class="pre">None</span></code>，就用它作为处理后的 <code class="docutils literal notranslate"><span class="pre">lhs</span></code> 代替 <code class="docutils literal notranslate"><span class="pre">self.lhs</span></code>。</p>
</dd></dl>

<dl class="method">
<dt id="django.db.models.Lookup.process_rhs">
<code class="descname">process_rhs</code>(<em>compiler</em>, <em>connection</em>)<a class="headerlink" href="#django.db.models.Lookup.process_rhs" title="永久链接至目标">¶</a></dt>
<dd><p>右侧的行为与 <a class="reference internal" href="#django.db.models.Lookup.process_lhs" title="django.db.models.Lookup.process_lhs"><code class="xref py py-meth docutils literal notranslate"><span class="pre">process_lhs()</span></code></a> 相同。</p>
</dd></dl>

</dd></dl>

</div>
</div>


          </div>
        </div>
      </div>
      
        
          <div class="yui-b" id="sidebar">
            
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper">
  <h3><a href="../../contents.html">Table of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">查找 API 参考</a><ul>
<li><a class="reference internal" href="#registration-api">注册 API</a></li>
<li><a class="reference internal" href="#the-query-expression-api">查询表达式 API</a></li>
<li><a class="reference internal" href="#transform-reference"><code class="docutils literal notranslate"><span class="pre">Transform</span></code> 参考</a></li>
<li><a class="reference internal" href="#lookup-reference"><code class="docutils literal notranslate"><span class="pre">Lookup</span></code> 参考</a></li>
</ul>
</li>
</ul>

  <h4>上一个主题</h4>
  <p class="topless"><a href="querysets.html"
                        title="上一章"><code class="docutils literal notranslate"><span class="pre">QuerySet</span></code> API 参考</a></p>
  <h4>下一个主题</h4>
  <p class="topless"><a href="expressions.html"
                        title="下一章">查询表达式</a></p>
  <div role="note" aria-label="source link">
    <h3>本页</h3>
    <ul class="this-page-menu">
      <li><a href="../../_sources/ref/models/lookups.txt"
            rel="nofollow">显示源代码</a></li>
    </ul>
   </div>
<div id="searchbox" style="display: none" role="search">
  <h3>快速搜索</h3>
    <div class="searchformwrapper">
    <form class="search" action="../../search.html" method="get">
      <input type="text" name="q" />
      <input type="submit" value="转向" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    </div>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
              <h3>Last update:</h3>
              <p class="topless">12月 07, 2021</p>
          </div>
        
      
    </div>

    <div id="ft">
      <div class="nav">
    &laquo; <a href="querysets.html" title="&lt;code class=&#34;docutils literal notranslate&#34;&gt;&lt;span class=&#34;pre&#34;&gt;QuerySet&lt;/span&gt;&lt;/code&gt; API 参考">previous</a>
     |
    <a href="../index.html" title="API 参考" accesskey="U">up</a>
   |
    <a href="expressions.html" title="查询表达式">next</a> &raquo;</div>
    </div>
  </div>

      <div class="clearer"></div>
    </div>
  </body>
</html>